//
// Copyright (c) 2010 Alex Nesterenko
//

#ifndef NANE_STRINGS_H
#   define NANE_STRINGS_H

#   include <cassert>
#   include <string>
#   include <vector>

namespace nane
{
    typedef std::vector<std::string> TStringVector;
    
//    class String
//    {
//    public:
//        static void split( const std::string& _str, const std::string& _delims, TStringVector* _outStrings )
//        {
//            assert( _outStrings != NULL );
//
//            _outStrings->clear();
//
//            // Use STL methods
//            std::string::size_type start, pos;
//            start = 0;
//            do
//            {
//                pos = _str.find_first_of( _delims, start );
//                /*if (pos == start)
//                {
//                // Do nothing
//                start = pos + 1;
//                }
//                else */if( pos == std::string::npos )
//                {
//                    // Copy the rest of the string
//                    _outStrings->push_back( _str.substr( start ) );
//                    break;
//                }
//                else
//                {
//                    // Copy up to delimiter
//                    _outStrings->push_back( _str.substr( start, pos - start ) );
//                    start = pos + 1;
//                }
//                // parse up to next real data
//
//            } while( pos != std::string::npos );
//
//        }
//
//        static void join( const TStringVector& _strings, const std::string& _delim, std::string* _outString )
//        {
//            assert( _outString != NULL );
//
//            if( _strings.empty() == true )
//            {
//                _outString->clear();
//                return;
//            }
//            TStringVector::const_iterator it = _strings.begin();
//            *_outString = *it;
//            ++it;
//            for( TStringVector::const_iterator it_end = _strings.end();
//                    it != it_end;
//                    ++it )
//            {
//                _outString->append( _delim );
//                _outString->append( *it );
//            }
//        }
//    };
}   // namespace nane

#endif	// NANE_STRINGS_H
